linux文件IO 您所在的位置:网站首页 htonll 头文件 linux文件IO

linux文件IO

2023-08-28 12:43| 来源: 网络整理| 查看: 265

目录

一、文件描述符

二、打开文件: open

三、读取:read

四、写入:write

五、  关闭: close

        不带缓冲           不带缓冲指的是每个read和write都调用内核中的相应系统调用           不带缓冲的I/O函数不是ANSI C的组成部分,但是是POSIX和XPG3的组成部分           通过文件描述符来访问文件

一、文件描述符

                对于内核而言,所有打开文件都由文件描述符引用。                 文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。                 当读、写一个文件时,用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write。                 在posiX.1应用程序中,幻数0、1、2应被代换成符号常数STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO。                 这些常数都定义在头文件中。                                  由shell默认打开,分别为0/1/2                 标准文件             文件描述符                 介绍                 标准输入             0(stdin)                从键盘输入                 标准输出             1(stdout)                从屏幕输出                 标准错误输出        2(stderr)                从屏幕输出(错误信息)                 hello.txt            3                        hello.txt

二、打开文件: open

        man open         #include         #include         #include        int open(const char *pathname, int flags);        int open(const char *pathname, int flags, mode_t mode);         功能:                     打开文件         参数:                     pathname:文件名                     flags:打开的方式                             O_RDONLY:只读的方式打开文件                             O_WRONLY:只写的方式打开文件            这三个参数互斥                             O_RDWR:读写的方式打开文件                                     O_CREAT:如果该文件不存在,就创建一个新的文件,并用第三的参数为其设置权限。                                                                          O_EXCL:如果使用O_CREAT时文件存在,则可返回错误消息。这一参数可测试文件是否存在。                                     O_NOCTTY:使用本参数时,如文件为终端,那么终端不可以作为调用open()系统调用的那个进程的控制终端。                                                                          O_TRUNC:如文件已经存在,那么打开文件时先删除文件中原有数据                                             (清空模式)                                     O_APPEND:以添加方式打开文件,所以对文件的写操作都在文件的末尾进行                                             (追加模式)                     mode:模式:被打开文件的存取权限,为8进制表示法。                                 如果以0777创建,会设置权限为0775                             

        返回:    成功返回文件描述符、                 失败返回-1,并返回错误码                                                   标准IO和文件IO的权限                 标准IO                            文件IO                 fopen                            open                                  r                                O_RDONLY                     r+                                O_RDWR                 w                                O_WRONLY|O_CREAT|O_TRUNC,0664                 w+                                O_RDWR|O_CREAT|O_TRUNC,0664                 a                                O_WRONLY|O_CREAT|O_APPEND,0664                 a+                                O_RDWR|O_CREAT|O_APPEND,0664

三、读取:read

        #include         ssize_t read(int fd, void *buf, size_t count);         功能:                     根据文件描述符,读取相应的文件中的数据         参数:                 fd:文件描述符                 buf:读取出来的数据存放的位置                 count:读取数据的字节大小         返回值:                 成功返回读取的字节数,读到末尾成功返回0                 失败返回-1,并设置错误码

四、写入:write

         #include         ssize_t write(int fd, const void *buf, size_t count);         功能:                     根据文件描述符,写入数据到相应的文件中         参数:                 fd:文件描述符                 buf:写入的数据存放的位置                 count:写入数据的字节大小         返回值:                 成功返回写入的字节数                 失败返回-1,并设置错误码

 五、  关闭: close

        #include        int close(int fd);        功能:                 关闭文件描述符对应的文件        参数:                 fd:文件描述符        返回值:                 成功返回0                 失败返回-1,并设置错误码



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有